Spring Boot可以跟经典的Java开发工具(Eclipse,IntelliJ等)一起使用或安装成一个命令行工具。不管怎样,你都需要安装Java SDK v1.6 或更高版本。在开始之前,你需要检查下当前安装的Java版本:
$ java -version
如果你是一个Java新手,或只是想体验一下Spring Boot,你可能想先尝试Spring Boot CLI,否则继续阅读“经典”地安装指南。
注:尽管Spring Boot兼容Java 1.6,如果可能的话,你应该考虑使用Java最新版本。
对于java开发者来说,使用Spring Boot就跟使用其他Java库一样,只需要在你的classpath下引入适当的spring-boot-*.jar
文件。Spring Boot不需要集成任何特殊的工具,所以你可以使用任何IDE或文本编辑器;同时,Spring Boot应用也没有什么特殊之处,你可以像对待其他Java程序那样运行,调试它。
尽管可以拷贝Spring Boot jars,但我们还是建议你使用支持依赖管理的构建工具,比如Maven或Gradle。
Spring Boot兼容Apache Maven 3.2或更高版本。如果本地没有安装Maven,你可以参考maven.apache.org上的指南。
注:在很多操作系统上,可以通过包管理器来安装Maven。OSX Homebrew用户可以尝试brew install maven
,Ubuntu用户可以运行sudo apt-get install maven
。
Spring Boot依赖使用的groupId为org.springframework.boot
。通常,你的Maven POM文件会继承spring-boot-starter-parent
工程,并声明一个或多个“Starter POMs”依赖。此外,Spring Boot提供了一个可选的Maven插件,用于创建可执行jars。
下面是一个典型的pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.BUILD-SNAPSHOT</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- Add Spring repositories -->
<!-- (you don't need this if you are using a .RELEASE version) -->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
</project>
注:spring-boot-starter-parent
是使用Spring Boot的一种不错的方式,但它并不总是最合适的。有时你可能需要继承一个不同的父 POM,或只是不喜欢我们的默认配置,那你可以使用import作用域这种替代方案,具体查看Section 13.2.2, “Using Spring Boot without the parent POM”。
Spring Boot兼容Gradle 1.12或更高版本。如果本地没有安装Gradle,你可以参考www.gradle.org上的指南。
Spring Boot的依赖可通过groupId org.springframework.boot
来声明。通常,你的项目将声明一个或多个“Starter POMs”依赖。Spring Boot提供了一个很有用的Gradle插件,可以用来简化依赖声明,创建可执行jars。
注:当你需要构建项目时,Gradle Wrapper提供一种给力的获取Gradle的方式。它是一小段脚本和库,跟你的代码一块提交,用于启动构建进程,具体参考Gradle Wrapper。
下面是一个典型的build.gradle
文件:
buildscript {
repositories {
jcenter()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.BUILD-SNAPSHOT")
}
}
apply plugin: 'java'
apply plugin: 'spring-boot'
jar {
baseName = 'myproject'
version = '0.0.1-SNAPSHOT'
}
repositories {
jcenter()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
Spring Boot CLI是一个命令行工具,可用于快速搭建基于Spring的原型。它支持运行Groovy脚本,这也就意味着你可以使用类似Java的语法,但不用写很多的模板代码。
Spring Boot不一定非要配合CLI使用,但它绝对是Spring应用取得进展的最快方式(你咋不飞上天呢?)。
Spring CLI分发包可以从Spring软件仓库下载:
不稳定的snapshot分发包也可以获取到。
下载完成后,解压分发包,根据存档里的INSTALL.txt操作指南进行安装。总的来说,在.zip
文件的bin/
目录下会有一个spring脚本(Windows下是spring.bat
),或使用java -jar
运行lib/
目录下的.jar
文件(该脚本会帮你确保classpath被正确设置)。
SDKMAN(软件开发包管理器)可以对各种各样的二进制SDK包进行版本管理,包括Groovy和Spring Boot CLI。可以从sdkman.io下载SDKMAN,并使用以下命令安装Spring Boot:
$ sdk install springboot
$ spring --version
Spring Boot v1.4.0.BUILD-SNAPSHOT
如果你正在为CLI开发新的特性,并想轻松获取刚构建的版本,可以使用以下命令:
$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-1.4.0.BUILD-SNAPSHOT-bin/spring-1.4.0.BUILD-SNAPSHOT/
$ sdk default springboot dev
$ spring --version
Spring CLI v1.4.0.BUILD-SNAPSHOT
这将会安装一个名叫dev的本地spring实例,它指向你的目标构建位置,所以每次你重新构建Spring Boot,spring都会更新为最新的。
你可以通过以下命令来验证:
$ sdk ls springboot
================================================================================
Available Springboot Versions
================================================================================
> + dev
* 1.4.0.BUILD-SNAPSHOT
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
如果你的环境是Mac,并使用Homebrew,想要安装Spring Boot CLI只需以下操作:
$ brew tap pivotal/tap
$ brew install springboot
Homebrew将把spring安装到/usr/local/bin
下。
注:如果该方案不可用,可能是因为你的brew版本太老了。你只需执行brew update
并重试即可。
如果你的环境是Mac,并使用MacPorts,想要安装Spring Boot CLI只需以下操作:
$ sudo port install spring-boot-cli
Spring Boot CLI启动脚本为BASH和zsh shells提供完整的命令行实现。你可以在任何shell中source脚本(名称也是spring),或将它放到用户或系统范围内的bash初始化脚本里。在Debian系统中,系统级的脚本位于/shell-completion/bash
下,当新的shell启动时该目录下的所有脚本都会被执行。如果想要手动运行脚本,假如你已经安装了SDKMAN,可以使用以下命令:
$ . ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring
$ spring <HIT TAB HERE>
grab help jar run test version
注:如果你使用Homebrew或MacPorts安装Spring Boot CLI,命令行实现脚本会自动注册到你的shell。
下面是一个相当简单的web应用,你可以用它测试Spring CLI安装是否成功。创建一个名叫app.groovy
的文件:
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
然后只需在shell中运行以下命令:
$ spring run app.groovy
注:首次运行该应用将会花费一些时间,因为需要下载依赖,后续运行将会快很多。
使用你最喜欢的浏览器打开localhost:8080,然后就可以看到如下输出:
Hello World!
如果你正在升级Spring Boot的早期发布版本,那最好查看下project wiki上的"release notes",你会发现每次发布对应的升级指南和一个"new and noteworthy"特性列表。
想要升级一个已安装的CLI,你需要使用合适的包管理命令,例如brew upgrade
;如果是手动安装CLI,按照standard instructions操作并记得更新你的PATH环境变量以移除任何老的引用。